R Session info

print(sessionInfo(), locale = FALSE)
## R version 4.1.1 (2021-08-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.3 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] forcats_0.5.1   stringr_1.4.0   dplyr_1.0.7     purrr_0.3.4    
##  [5] readr_2.0.0     tidyr_1.1.3     tibble_3.1.4    ggplot2_3.3.5  
##  [9] tidyverse_1.3.1 here_1.0.1     
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.1.1 xfun_0.26        bslib_0.3.0      haven_2.4.1     
##  [5] colorspace_2.0-2 vctrs_0.3.8      generics_0.1.0   htmltools_0.5.2 
##  [9] yaml_2.2.1       utf8_1.2.2       rlang_0.4.11     jquerylib_0.1.4 
## [13] pillar_1.6.3     withr_2.4.2      glue_1.4.2       DBI_1.1.1       
## [17] bit64_4.0.5      dbplyr_2.1.1     modelr_0.1.8     readxl_1.3.1    
## [21] lifecycle_1.0.1  munsell_0.5.0    gtable_0.3.0     cellranger_1.1.0
## [25] rvest_1.0.1      evaluate_0.14    knitr_1.35       tzdb_0.1.2      
## [29] fastmap_1.1.0    parallel_4.1.1   fansi_0.5.0      broom_0.7.9     
## [33] Rcpp_1.0.7       backports_1.2.1  scales_1.1.1     vroom_1.5.3     
## [37] jsonlite_1.7.2   bit_4.0.4        fs_1.5.0         hms_1.1.0       
## [41] digest_0.6.28    stringi_1.7.4    rprojroot_2.0.2  grid_4.1.1      
## [45] cli_3.0.1        tools_4.1.1      magrittr_2.0.1   sass_0.4.0      
## [49] crayon_1.4.1     pkgconfig_2.0.3  ellipsis_0.3.2   xml2_1.3.2      
## [53] reprex_2.0.1     lubridate_1.7.10 rstudioapi_0.13  assertthat_0.2.1
## [57] rmarkdown_2.10   httr_1.4.2       R6_2.5.1         compiler_4.1.1

Experimental setup

knitr::include_graphics(here("analysis/figures/plate_lid_side.jpg"))

The 24 deepwell plate and the lid with pegs (substrata)

knitr::include_graphics(here("analysis/figures/plate_lid_on.jpg"))

The 24 deepwell plate with the lid on (sort of…)

Metadata for raw data files

Counts represent the absolute number of starches counted on a slide

starch_counts.csv

variable description
sample Sample number.
plate Plate number that the sample came from.
row Which row on the plate the sample came from.
s Small starch count.
m Medium starch count.
l Large starch count.
total Sum of s, m, and l.
treatment Treatment solution to which the samples were exposed.
starch Type of starch that was counted.
weight Weight of the biofilm sample.
vol Total volume of EDTA in which the sample was dissolved.
portion_slide Proportion of the microscope slide that was counted. Total transects on slide divided by counted transects.

solution_counts

variable description
solution Type of starch in solution.
concentration Concentration (%w/v) of starch in solution.
vol_slide Volume of solution added to slide.
vol_total Total volume of solution in aliquot.
portion_slide Proportion of slide that was counted. Total transects on slide divided by counted transects.
slide Slide number.
starch Starch type counted.
s Small starch count.
m Medium starch count.
l Large starch count.
total Sum of s, m, and l.

Raw data

Raw counts from the treatment solutions before extrapolation.

raw_data_solutions

Raw counts from the calculus samples before extrapolation:

raw_data_samples

The raw data can be downloaded from GitHub:

# solution counts
wget https://github.com/bbartholdy/byoc-starch/blob/main/analysis/data/raw_data/solution_counts.csv

# sample counts
wget https://github.com/bbartholdy/byoc-starch/blob/main/analysis/data/raw_data/starch_counts.csv

Amylase activity

Amylase activity in U/mL enzyme, where a U is mg maltose released from starch in six minutes at 36 °C.

Tables containing the amylase activity results for both plates and photometric readings.

# table of results reported in units amylase per mL enzyme (but let's be honest,
  # ...it doesn't really matter what the unit is. No activity is no activity)
source(here("analysis/scripts/amylase-assay.R"))
cols <- c("1", "2", "3")  
rows <- c("S1", "S2", "S3", "B1", "B2", "B3", "B4", "B5", "BT1", "BT2", "BT3")
plt1_ph1_result <- rbind(sal1_ph1, bmm1_ph1)
rownames(plt1_ph1_result) <- rows
plt1_ph2_result <- rbind(sal1_ph2, bmm1_ph2)
rownames(plt1_ph2_result) <- rows
plt2_ph1_result <- rbind(sal2_ph1, bmm2_ph1)
rownames(plt2_ph1_result) <- rows
plt2_ph2_result <- rbind(sal2_ph2, bmm2_ph2)
rownames(plt2_ph2_result) <- rows
plt1_ph1_result
plt1_ph2_result
plt2_ph1_result
plt2_ph2_result

Control samples

raw_data_samples %>%
  filter(treatment == "control") %>%
  select(!c(vol, portion_slide, s, m, l))

Only the total starch count was considered for control samples, as size was deemed irrelevant.

Count corrections

Slide transects were calculated by counting the number of transects on the cover slip under the microscope. This was done by starting in the bottom-left corner, and counting the total number of full fields-of-view across the cover slip to the bottom-right corner. The total number of transects was 29 (verified multiple times).

Solution counts were extrapolated to the quantity in a 1 ml solution with the following formula:

\[ \text{corrected count} = \text{raw count} \times \frac{\text{total} \space \text{transects}}{\text{counted} \space \text{transects}} \times 100 \mu l \]

Sample counts were extrapolated using the following formula:

\[ \text{Corrected count} = \text{raw count} \times (\text{portion of slide})^{-1} \times \frac{V_{sample}}{V_{slide}} \]

Microscope images

Image of starch granules extracted from a potato treatment sample

knitr::include_graphics(here("analysis/figures/SNAP-103412-0006.jpg"))

knitr::include_graphics(here("analysis/figures/SNAP-164650-0012.jpg"))

Microscope image of wheat starch from a wheat treatment sample.